/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package com.webanovare.ruzzle.mgr.impl;

import com.webanovare.ruzzle.misc.Player;
import com.webanovare.ruzzle.misc.Trie;
import java.awt.Point;
import java.util.List;
import java.util.Map;

/**
 *
 * @author ekbga
 */
public abstract class GameState {
    
    protected IHandleState g;
    
    public GameState(IHandleState g) {
        this.g = g;
    }
    
    protected void changeToActive() {
        g.changeToActive();
    }
    
    public abstract void accept();
    public abstract void decline();
    public abstract void challenge(Player p);
    public abstract List<Character> getBoard();
    public abstract Character[][] getBoardMatrix();
    public abstract Trie getTrie();
    public abstract boolean addWord(List<Point> ps, boolean opponent);
    public abstract int getOpponentPoints();
    public abstract int getOwnerPoints();
    public abstract Map<String, Integer> getOwnerStatistics();
    public abstract Map<String, Integer> getOpponentStatistics();
}
